package org.gvp.record.service;

import org.gvp.common.constant.BaseService;
import org.gvp.common.http.Page;
import org.gvp.record.dto.ItemDTO;
import org.gvp.record.pojo.ReportDetail;

import java.util.List;

/**
 * 报销单详细信息表 服务层接口
 */
public interface ReportDetailService extends BaseService<ReportDetail> {


    /**
     * 根据报销单编号查找报销单详细信息列表数据
     * @param reportId 报销单编号
     * @return 报销单详细信息列表数据
     */
    List<ReportDetail> findListByReportId(Integer reportId);

    /**
     * 根据报销单编号查找报销单详细信息列表数据
     * @param reportId 报销单编号
     * @param page 当前页
     * @param size 页大小
     * @return 报销单详细信息列表数据
     */
    List<ReportDetail> findListByReportId(Integer reportId, int page, int size);
    /**
     * 根据报销单编号查找报销单详细信息分页数据
     * @param reportId 报销单编号
     * @param page 当前页
     * @param size 页大小
     * @return 报销单详细信息分页数据
     */
    Page<ReportDetail> findPageByReportId(Integer reportId, int page, int size);

    /**
     * 更新报销项目
     * @param dto 报销项目数据
     */
    boolean editItem(ItemDTO dto);

    /**
     * 添加报销项
     */
    boolean saveItem(ItemDTO dto);

    /**
     * 根据报销选项的key删除报销项目
     */
    boolean removeItem(String key);

    /**
     * 获取全部报销项列表
     */
    List<ItemDTO> findItemList();
}
